
@强制输出
@导入Java("android.widget. *")
@导入Java("android.os. *")
@导入Java("android.view. *")
@导入Java("android.view.View. *")
@导入Java("android.webkit. *")
@导入Java("android.graphics. *")
@导入Java("android.graphics.drawable. *")
@导入Java("android.app. *")
@导入Java("android.content. *")
@导入Java("android.content.res. *")
@导入Java("java.util. *")
@导入Java("java.io. *")
@导入Java("com.hengx.view.lrcView.*")
@外部Java文件("../Java/LrcView.java")
@外部Java文件("../Java/LrcEntry.java")
@外部Java文件("../Java/LrcInterface.java")
@外部Java文件("../Java/LrcUtils.java")
@外部Java文件("../Java/PlayerInterface.java")
类 歌词列表框 : 可视化组件
	
	@隐藏
	@静态
	变量 t : 图片资源 =  "../资源/drawable-xxhdpi/lrc_play.png"
	
	@code
	private String lastrow;
	private #<歌曲播放器> player;
	public #<歌词列表框>(Context context) {
		super(context);
	}
	@Override
   public LrcView getView(){
      return (LrcView)super.getView();
   }
   @Override
   public View onCreateView(Context context) {
   	LrcView lv = new LrcView(context);
      lv.setLabel("暂无歌词");
	  lv.mPlayDrawable = context.getDrawable(#t);
      lv.setLrcInterface(new LrcInterface(){
         @Override
         public void onNewLrcLine(int line){
            if (getView().getLrcText(line).equals(lastrow) == false) {
               lastrow = getView().getLrcText(line);
               #歌词行改变(line, lv.getLrcText(line), lv.getLrcEntry(line).getShowText());
            }
         }
      });
      lv.setOnPlayClickListener(new LrcView.OnPlayClickListener(){
         @Override
         public boolean onPlayClick(LrcView view, long time){
            if(player != null){
               player.getMediaPlayer().seekTo((int)time);
            }
            #播放按钮被单击(time);
            return true;
         }
      });
      return lv;
   }
	@end
	
	//没有歌词时显示的文本
   属性写 标题(标题 为 文本)
      code getView().setLabel(#标题);
   结束 属性

   //设置是否支持拖动
   属性写 可拖动歌词(可拖动 为 逻辑型)
      code getView().setDraggable(#可拖动);
   结束 属性

   //加载一段歌词文本，格式：[00:00.00]我是歌词
   方法 加载歌词(歌词内容 为 文本)
      code getView().loadLrc(#歌词内容);
   结束 方法
   //加载两段歌词文本，两段歌词的时间戳([00:00.00])要一致
   方法 加载双语歌词(歌词内容1 为 文本, 歌词内容2 为 文本)
      code getView().loadLrc(#歌词内容1, #歌词内容2);
   结束 方法
   //加载一个歌词文件(lrc)
   方法 加载歌词文件(歌词文件路径 为 文本)
      code getView().loadLrc(new File(#歌词文件路径));
   结束 方法
   //加载2个双语文件(lrc,lrc)
   方法 加载双语歌词文件(语言1路径 为 文本, 语言2路径 为 文本)
      code getView().loadLrc(new File(#语言1路径), new File(#语言2路径));
   结束 方法

   //使歌词滚动至某个时间
   方法 滚动至(位置 为 长整数, 启用动画 为 逻辑型)
      code getView().onDrag(#位置, #启用动画);
   结束 方法

   //判断歌词是否有效
   方法 歌词是否有效() 为 逻辑型
      code return getView().hasLrc();
   结束 方法

   //刷新指定时间的歌词
   方法 刷新歌词(时长 为 整数)
      code getView().updateTime(#时长);
   结束 方法

   //根据播放器自动调整歌词
   方法 绑定播放器(播放器 为 歌曲播放器)
	   @code
	   if(player != null) {
	   	player.setPlayerInterface(null);
	   }
	   player = #播放器;
	   player.setPlayerInterface(new PlayerInterface(){
         @Override
         public void onPlay(int time){
            #滚动至(time, true);
         }
      });
	   @end
   结束 方法
   //根据时间查找对应行数
   方法 查找行(时长 为 整数) 为 整数
      code return getView().findShowLine(#时长);
   结束 方法
   方法 取行歌词内容(行数 为 整数) 为 文本
      code return getView().getLrcText(#行数);
   结束 方法
   方法 取行歌词内容2(行数 为 整数) 为 文本
      code return getView().getLrcEntry(#行数).getShowText();
   结束 方法
   //未播放的歌词颜色
   方法 设置歌词颜色(颜色 为 整数)
      code getView().setNormalColor(#颜色);
   结束 方法
   //当前播放的歌词颜色
   方法 设置高亮歌词颜色(颜色 为 整数)
      code getView().setCurrentColor(#颜色);
   结束 方法
   //未播放的歌词大小
   方法 设置歌词字体大小(大小 为 整数)
      code getView().setNormalTextSize(#大小);
   结束 方法
   //正在播放的歌词大小
   方法 设置高亮歌词大小(大小 为 整数)
      code getView().setCurrentTextSize(#大小);
   结束 方法
   //拖动时位于时间线位置的歌词颜色
   方法 设置选中歌词颜色(颜色 为 整数)
      code getView().setTimelineTextColor(#颜色);
   结束 方法
   //拖动时的时间线的颜色
   方法 设置时间线颜色(颜色 为 整数)
      code getView().setTimelineColor(#颜色);
   结束 方法
   //拖动时的时间字体颜色
   方法 设置时间颜色(颜色 为 整数)
      code getView().setTimeTextColor(#颜色);
   结束 方法

   //强制结束动画
   方法 结束动画()
      code getView().endAnimation();
   结束 方法
   //清空歌词
   方法 清空()
      code getView().clearLrc();
   结束 方法
   //重置歌词列表框
   方法 重置()
      code getView().reset();
   结束 方法
	
	定义事件 歌词行改变(当前行 为 整数, 当前行歌词 为 文本, 当前行歌词2 为 文本)
   
   定义事件 播放按钮被单击(播放位置 为 长整数)
	
结束 类